axios.defaults.baseURL = 'https://hmajax.itheima.net'

// 轻提示函数
function showToast(msg) {
  const Dom = document.querySelector('.my-toast')
  const toast = new bootstrap.Toast(Dom)
  document.querySelector('.toast-body').innerHTML = msg
  toast.show()
}

// 校验是否登录函数-是否有token
function checkLogin() {
  const token = localStorage.getItem('token')
  if (token === null) {
    showToast('请先登录')
    setTimeout(() => {
      location.href = './login.html'
    }, 1500);
  }
}

// 用户名渲染
function renderUsername() {
  const username = localStorage.getItem('username')
  document.querySelector('.username').innerHTML = username
}

// 退出登录函数
function logout() {
  document.querySelector('#logout').addEventListener('click', function() {
    localStorage.removeItem('username')
    localStorage.removeItem('token')
    location.href = './login.html'
  })
}

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
   // 在发送请求之前做些什么,比如: 统一设置token
   // 通过config可以获取请求的设置，比如headers可以获取（修改）请求头
   const token = localStorage.getItem('token')
   if (token) {
    config.headers['Authorization'] = token
   }
   return config;
  }, function (error) {
   // 对请求错误做些什么
   return Promise.reject(error);
  })

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
   // 2xx 范围内的状态码都会触发该函数。
   // 对响应数据做点什么，比如: 数据剥离
  //  console.log(response.data)
   
   return response.data;
  }, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
   // 对响应错误做点什么: 比如统一处理token失效
   if (error.response.status == 401) {
      localStorage.removeItem('token')
      localStorage.removeItem('username')
      showToast('请重新登录')
      setTimeout(() => {
        location.href = 'login.html'
      }, 1500);
    }
   return Promise.reject(error);
  });
  